package com.service;

import com.commonutils.results;
import com.entity.neo4j.CourseNode;
import com.entity.pojo.Courses;
import com.baomidou.mybatisplus.extension.service.IService;
import com.utils.InitData;
import org.springframework.data.repository.query.Param;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 *
 * @author chenmo
 * @since 2022-04-02
 */
public interface CoursesService extends IService<Courses> {

    boolean updateCoursesInfo(Courses course);

    // 从Excel中导入课程信息
    void importCourseInfo(MultipartFile courseFile, CoursesService coursesService, InitData initData);

    List<Courses> getAllCourse(Integer courseId);

    // 在neo4j数据库中添加一个课程节点
    results addCourseNode(String name);

    // 通过课程名称查找课程节点
    List<CourseNode>  getCoursesNodeByCourseName(String name);

    // 通过关系名称查找关联的课程节点
    List<CourseNode> getCoursesNodeByRelation(String relationName);

    // 将MySQL数据库中的课程信息转换成Neo4j中的图数据
    void transformCourseToCourseNode();

    // 建立两个已存在节点之间的关系
    results createCourseRelation(String from, String relation, String to);

    // 建立课程关系表中所有有关系节点的关系
    void createAllCourseRelation();

    // 获取Neo4j的所有节点及其相关关系
    results getAllNeo4jNode();

    // 从MySQL中获取数据并展示生成为节点前端
    results getAllNodeAndRelation();
}
